/*
** HFCL - HybridOS Foundation Class Library
**
** Copyright (C) 2018 Beijing FMSoft Technologies Co., Ltd.
**
** This file is part of HFCL.
**
** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program.  If not, see <https://www.gnu.org/licenses/>.
*/

// NOTE
// This file is auto-generated by using 'make_css_properties.py'.
// Please take care when you modify this file mannually.

static bool pvc_background_attachment(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_SCROLL,
        PVK_FIXED,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_background_color(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_color(value, data)
    ;
}

static bool pvc_background_image(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NONE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_url(value, data)
        || check_sysid(value, data)
    ;
}

static bool pvc_background_position_x(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_LEFT,
        PVK_CENTER,
        PVK_RIGHT,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_percentage(value, data)
        || check_length(value, data)
    ;
}

static bool pvc_background_position_y(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_TOP,
        PVK_CENTER,
        PVK_BOTTOM,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_percentage(value, data)
        || check_length(value, data)
    ;
}

static bool pvc_background_repeat(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_REPEAT,
        PVK_REPEAT_X,
        PVK_REPEAT_Y,
        PVK_NO_REPEAT,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_border_bottom_color(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_color(value, data)
    ;
}

static bool pvc_border_bottom_left_radius(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
        || check_array_length(value, data)
        || check_array_percentage(value, data)
    ;
}

static bool pvc_border_bottom_right_radius(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
        || check_array_length(value, data)
        || check_array_percentage(value, data)
    ;
}

static bool pvc_border_bottom_style(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_border_style(value, data)
    ;
}

static bool pvc_border_bottom_width(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_border_width(value, data)
    ;
}

static bool pvc_border_left_color(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_color(value, data)
    ;
}

static bool pvc_border_left_style(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_border_style(value, data)
    ;
}

static bool pvc_border_left_width(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_border_right_color(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_color(value, data)
    ;
}

static bool pvc_border_right_style(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_border_style(value, data)
    ;
}

static bool pvc_border_right_width(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_border_width(value, data)
    ;
}

static bool pvc_border_top_color(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_color(value, data)
    ;
}

static bool pvc_border_top_left_radius(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
        || check_array_length(value, data)
        || check_array_percentage(value, data)
    ;
}

static bool pvc_border_top_right_radius(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
        || check_array_length(value, data)
        || check_array_percentage(value, data)
    ;
}

static bool pvc_border_top_style(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_border_style(value, data)
    ;
}

static bool pvc_border_top_width(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_border_width(value, data)
    ;
}

static bool pvc_bottom(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_clear(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NONE,
        PVK_LEFT,
        PVK_RIGHT,
        PVK_BOTH,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_clip(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_shape(value, data)
    ;
}

static bool pvc_color(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_color(value, data)
    ;
}

static bool pvc_content(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NORMAL,
        PVK_NONE,
        PVK_OPEN_QUOTE,
        PVK_CLOSE_QUOTE,
        PVK_NO_OPEN_QUOTE,
        PVK_NO_CLOSE_QUOTE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_string(value, data)
        || check_url(value, data)
        || check_counter(value, data)
    ;
}

static bool pvc_counter_increment(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NONE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_counter(value, data)
    ;
}

static bool pvc_counter_reset(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NONE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_counter(value, data)
    ;
}

static bool pvc_cursor(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_CROSSHAIR,
        PVK_DEFAULT,
        PVK_POINTER,
        PVK_MOVE,
        PVK_E_RESIZE,
        PVK_NE_RESIZE,
        PVK_NW_RESIZE,
        PVK_N_RESIZE,
        PVK_SE_RESIZE,
        PVK_SW_RESIZE,
        PVK_S_RESIZE,
        PVK_W_RESIZE,
        PVK_TEXT,
        PVK_WAIT,
        PVK_HELP,
        PVK_PROGRESS,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_url(value, data)
    ;
}

static bool pvc_direction(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_LTR,
        PVK_RTL,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_display(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INLINE,
        PVK_BLOCK,
        PVK_LIST_ITEM,
        PVK_INLINE_BLOCK,
        PVK_NONE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_float(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_LEFT,
        PVK_RIGHT,
        PVK_NONE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_font(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_USE_OTHERS,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_string(value, data)
        || check_sysid(value, data)
    ;
}

static bool pvc_font_family(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_SERIF,
        PVK_SANS_SERIF,
        PVK_CURSIVE,
        PVK_FANTASY,
        PVK_MONOSPACE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_string(value, data)
    ;
}

static bool pvc_font_size(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_XX_SMALL,
        PVK_X_SMALL,
        PVK_SMALL,
        PVK_MEDIUM,
        PVK_LARGE,
        PVK_X_LARGE,
        PVK_XX_LARGE,
        PVK_LARGER,
        PVK_SMALLER,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_font_style(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NORMAL,
        PVK_ITALIC,
        PVK_OBLIQUE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_font_variant(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NORMAL,
        PVK_SMALL_CAPS,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_font_weight(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NORMAL,
        PVK_BOLD,
        PVK_BOLDER,
        PVK_LIGHTER,
        PVK_100,
        PVK_200,
        PVK_300,
        PVK_400,
        PVK_500,
        PVK_600,
        PVK_700,
        PVK_800,
        PVK_900,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_hanging_punctuation(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NONE,
        PVK_FORCE_END,
        PVK_ALLOW_END,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_height(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_width_height(value, data)
    ;
}

static bool pvc_hvml_pseudo(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_JUSTIFY_ALL,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_hyphens(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NONE,
        PVK_MANUAL,
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_left(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_letter_spacing(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NORMAL,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
    ;
}

static bool pvc_line_break(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_LOOSE,
        PVK_NORMAL,
        PVK_STRICT,
        PVK_ANYWHERE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_line_height(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NORMAL,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_number(value, data)
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_list_style_image(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NONE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_url(value, data)
        || check_sysid(value, data)
    ;
}

static bool pvc_list_style_position(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INSIDE,
        PVK_OUTSIDE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_list_style_type(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_DISC,
        PVK_CIRCLE,
        PVK_SQUARE,
        PVK_DECIMAL,
        PVK_DECIMAL_LEADING_ZERO,
        PVK_LOWER_ROMAN,
        PVK_UPPER_ROMAN,
        PVK_LOWER_GREEK,
        PVK_LOWER_LATIN,
        PVK_UPPER_LATIN,
        PVK_ARMENIAN,
        PVK_GEORGIAN,
        PVK_LOWER_ALPHA,
        PVK_UPPER_ALPHA,
        PVK_NONE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_margin_bottom(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_margin_left(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_margin_right(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_margin_top(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_max_height(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NONE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_width_height(value, data)
    ;
}

static bool pvc_max_width(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NONE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_width_height(value, data)
    ;
}

static bool pvc_min_height(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_width_height(value, data)
    ;
}

static bool pvc_min_width(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_width_height(value, data)
    ;
}

static bool pvc_opacity(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_alphavalue(value, data)
    ;
}

static bool pvc_orphans(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_integer(value, data)
    ;
}

static bool pvc_outline_color(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INVERT,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_color(value, data)
    ;
}

static bool pvc_outline_style(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_border_style(value, data)
    ;
}

static bool pvc_outline_width(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_border_width(value, data)
    ;
}

static bool pvc_overflow(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_VISIBLE,
        PVK_HIDDEN,
        PVK_SCROLL,
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_overflow_wrap(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NORMAL,
        PVK_BREAK_WORD,
        PVK_ANYWHERE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_padding_bottom(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_padding_left(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_padding_right(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_padding_top(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_page_break_after(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_ALWAYS,
        PVK_AVOID,
        PVK_LEFT,
        PVK_RIGHT,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_page_break_before(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_ALWAYS,
        PVK_AVOID,
        PVK_LEFT,
        PVK_RIGHT,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_page_break_inside(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AVOID,
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_position(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_STATIC,
        PVK_RELATIVE,
        PVK_ABSOLUTE,
        PVK_FIXED,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_quotes(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NONE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_array_string(value, data)
    ;
}

static bool pvc_right(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_tab_size(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_number(value, data)
        || check_length(value, data)
    ;
}

static bool pvc_text_align_all(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_START,
        PVK_END,
        PVK_LEFT,
        PVK_RIGHT,
        PVK_CENTER,
        PVK_JUSTIFY,
        PVK_MATCH_PARENT,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_text_align_last(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_START,
        PVK_END,
        PVK_LEFT,
        PVK_RIGHT,
        PVK_CENTER,
        PVK_JUSTIFY,
        PVK_MATCH_PARENT,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_text_combine_upright(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NONE,
        PVK_ALL,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_text_decoration(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NONE,
        PVK_UNDERLINE,
        PVK_OVERLINE,
        PVK_LINE_THROUGH,
        PVK_BLINK,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_text_indent(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_text_justify(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_NONE,
        PVK_INTER_WORD,
        PVK_INTER_CHARACTER,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_text_orientation(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_MIXED,
        PVK_UPRIGHT,
        PVK_SIDEWAYS,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_text_overflow(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_CLIP,
        PVK_ELLIPSIS,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_text_transform(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NONE,
        PVK_CAPITALIZE,
        PVK_UPPERCASE,
        PVK_LOWERCASE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_top(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
        || check_percentage(value, data)
    ;
}

static bool pvc_unicode_bidi(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NORMAL,
        PVK_EMBED,
        PVK_ISOLATE,
        PVK_BIDI_OVERRIDE,
        PVK_ISOLATE_OVERRIDE,
        PVK_PLAINTEXT,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_vertical_align(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_BASELINE,
        PVK_SUB,
        PVK_SUPER,
        PVK_TOP,
        PVK_TEXT_TOP,
        PVK_MIDDLE,
        PVK_BOTTOM,
        PVK_TEXT_BOTTOM,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_percentage(value, data)
        || check_length(value, data)
    ;
}

static bool pvc_visibility(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_VISIBLE,
        PVK_HIDDEN,
        PVK_COLLAPSE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_white_space(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NORMAL,
        PVK_PRE,
        PVK_NOWRAP,
        PVK_PRE_WRAP,
        PVK_BREAK_SPACES,
        PVK_PRE_LINE,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_widows(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_integer(value, data)
    ;
}

static bool pvc_width(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_width_height(value, data)
    ;
}

static bool pvc_word_break(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NORMAL,
        PVK_KEEP_ALL,
        PVK_BREAK_ALL,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_word_spacing(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_NORMAL,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_length(value, data)
    ;
}

static bool pvc_writing_mode(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_HORIZONTAL_TB,
        PVK_VERTICAL_RL,
        PVK_VERTICAL_LR,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
    ;
}

static bool pvc_z_index(Uint32 value, HTPVData data)
{
    static int valid_keywords[] = {
        PVK_AUTO,
        PVK_INHERIT,
        PVK_UNDEFINED
    };

    if (CSS_PPT_VALUE_TYPE(value) == PVT_KEYWORD) {
        if (check_keyword(CSS_PPT_VALUE_KEYWORD(value), valid_keywords))
            return true;
    }

    return false
        || check_integer(value, data)
    ;
}

typedef bool PV_CHECKER (Uint32, HTPVData);

static PV_CHECKER* _pv_checkers[] = {
    pvc_background_attachment,
    pvc_background_color,
    pvc_background_image,
    pvc_background_position_x,
    pvc_background_position_y,
    pvc_background_repeat,
    pvc_border_bottom_color,
    pvc_border_bottom_left_radius,
    pvc_border_bottom_right_radius,
    pvc_border_bottom_style,
    pvc_border_bottom_width,
    pvc_border_left_color,
    pvc_border_left_style,
    pvc_border_left_width,
    pvc_border_right_color,
    pvc_border_right_style,
    pvc_border_right_width,
    pvc_border_top_color,
    pvc_border_top_left_radius,
    pvc_border_top_right_radius,
    pvc_border_top_style,
    pvc_border_top_width,
    pvc_bottom,
    pvc_clear,
    pvc_clip,
    pvc_color,
    pvc_content,
    pvc_counter_increment,
    pvc_counter_reset,
    pvc_cursor,
    pvc_direction,
    pvc_display,
    pvc_float,
    pvc_font,
    pvc_font_family,
    pvc_font_size,
    pvc_font_style,
    pvc_font_variant,
    pvc_font_weight,
    pvc_hanging_punctuation,
    pvc_height,
    pvc_hvml_pseudo,
    pvc_hyphens,
    pvc_left,
    pvc_letter_spacing,
    pvc_line_break,
    pvc_line_height,
    pvc_list_style_image,
    pvc_list_style_position,
    pvc_list_style_type,
    pvc_margin_bottom,
    pvc_margin_left,
    pvc_margin_right,
    pvc_margin_top,
    pvc_max_height,
    pvc_max_width,
    pvc_min_height,
    pvc_min_width,
    pvc_opacity,
    pvc_orphans,
    pvc_outline_color,
    pvc_outline_style,
    pvc_outline_width,
    pvc_overflow,
    pvc_overflow_wrap,
    pvc_padding_bottom,
    pvc_padding_left,
    pvc_padding_right,
    pvc_padding_top,
    pvc_page_break_after,
    pvc_page_break_before,
    pvc_page_break_inside,
    pvc_position,
    pvc_quotes,
    pvc_right,
    pvc_tab_size,
    pvc_text_align_all,
    pvc_text_align_last,
    pvc_text_combine_upright,
    pvc_text_decoration,
    pvc_text_indent,
    pvc_text_justify,
    pvc_text_orientation,
    pvc_text_overflow,
    pvc_text_transform,
    pvc_top,
    pvc_unicode_bidi,
    pvc_vertical_align,
    pvc_visibility,
    pvc_white_space,
    pvc_widows,
    pvc_width,
    pvc_word_break,
    pvc_word_spacing,
    pvc_writing_mode,
    pvc_z_index,
};

